package leetcode;

/*
303. 区域和检索 - 数组不可变
给定一个整数数组  nums，求出数组从索引 i 到 j  (i ≤ j) 范围内元素的总和，包含 i,  j 两点。
示例：
给定 nums = [-2, 0, 3, -5, 2, -1]，求和函数为 sumRange()
sumRange(0, 2) -> 1
sumRange(2, 5) -> -1
sumRange(0, 5) -> -3
说明:
你可以假设数组不可变。
会多次调用 sumRange 方法。
*/

public class problems_303 {
    public static void main(String[] args) {
        int[] data = new int[]{-2, 0, 3, -5, 2, -1};
        NumArray numArray = new NumArray(data);
        System.out.println(numArray.sumRange(2, 5));
    }

    static class NumArray {
        int[] data = null;
        public NumArray(int[] nums) {
            this.data = nums;
        }
        public int sumRange(int i, int j) {
            if (i < 0) i = 0;
            if (j >= this.data.length) j = this.data.length - 1;
            int sum = 0;
            for (int k = i; k <= j; k++) {
                sum += this.data[k];
            }
            return sum;
        }
    }
}